﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DLL;
using BLL;

namespace QLCuaHang
{
    public partial class frmThietBi : Form
    {
        ThietBiBLL tb = new ThietBiBLL();
        public frmThietBi()
        {
            InitializeComponent();
        }
        private void frmThietBi_Load(object sender, EventArgs e)
        {
            if (frmDangNhap.quyen == 2)
            {
                btnThem.Enabled = false;
                btnSua.Enabled = false;
                btnXoa.Enabled = false;
            }
            GridConfig();
            LoadCbbNhomID();
            LoadCbbNhaCC();
            grvThietBi.DataSource = tb.Select_ALL();
        }

        private void GridConfig()
        {
            grvThietBi.ModeColorRow = 1;
            grvThietBi.SetColorRow(System.Drawing.Color.AliceBlue);
            grvThietBi.AddColumns("TextBox", "MaTB", "Mã", 70, true, true, "ML", " ");
            grvThietBi.AddColumns("TextBox", "TenTB", "Tên thiết bị", 207, true, true, "ML", " ");
            grvThietBi.AddColumns("TextBox", "GiaTien", "Giá tiền", 80, true, true, "MR", " ");
            grvThietBi.AddColumns("TextBox", "TenNCC", "Nhà cung cấp", 100, true, true, "MC", " ");
            grvThietBi.AddColumns("TextBox", "BaoHanh", "Bảo hành", 95, true, true, "MC", " ");
            grvThietBi.AddColumns("TextBox", "TenNhomID", "Nhóm sản phẩm", 80, true, true, "MC", " ");
            grvThietBi.AddColumns("TextBox", "SoLuong", "Số lượng", 60, true, true, "MR", " ");
            grvThietBi.AddColumns("TextBox", "MoTa", "Mô tả", 245, true, true, "ML", " ");
        }
        #region COmbobox
        void LoadCbbNhomID()
        {
            for (int i = 0; i < tb.SelectALL_NhomID().Rows.Count; i++)
            {
                NhomThietBiDAL ntb = new NhomThietBiDAL();
                ntb.NhomID = tb.SelectALL_NhomID().Rows[i]["NhomID"].ToString();
                ntb.TenNhomID = tb.SelectALL_NhomID().Rows[i]["TenNhomID"].ToString();
                cbbNhomID.Items.Add(ntb);
            }
            cbbNhomID.DisplayMember = "TenNhomID";
            cbbNhomID.SelectedIndex = 0;
        }
        void LoadCbbNhaCC()
        {
            for (int i = 0; i < tb.SelectALL_NhaCC().Rows.Count; i++)
            {
                NhaCungCapDAL ncc = new NhaCungCapDAL();
                ncc.MaNCC = tb.SelectALL_NhaCC().Rows[i]["MaNCC"].ToString();
                ncc.TenNCC = tb.SelectALL_NhaCC().Rows[i]["TenNCC"].ToString();
                ncc.DiaChi = tb.SelectALL_NhaCC().Rows[i]["DiaChi"].ToString();
                ncc.DienThoai = tb.SelectALL_NhaCC().Rows[i]["DienThoai"].ToString();
                ncc.EMail = tb.SelectALL_NhaCC().Rows[i]["Mail"].ToString();
                cbbNCC.Items.Add(ncc);
            }
            cbbNCC.DisplayMember = "TenNCC";
            cbbNCC.SelectedIndex = 0;

        }
        #endregion
        ThietBiDLL TaoTB()
        {
            ThietBiDLL tb = new ThietBiDLL();
            tb.MaTB = txtMaTB.Text;
            tb.TenTB = txtTenTB.Text;
            tb.MoTa = txtMoTa.Text;
            tb.SoLuong = int.Parse(txtSoLuong.Text);
            tb.GiaTien = float.Parse(txtGiaTien.Text);
            tb.BaoHanh = txtBaoHanh.Text;
            tb.NhomID = ((NhomThietBiDAL)cbbNhomID.SelectedItem).NhomID;
            tb.MaNCC = ((NhaCungCapDAL)cbbNCC.SelectedItem).MaNCC;
            tb.TonTai = true;
            return tb;
        }
        void Xoa()
        {
            txtMaTB.Text = "";
            txtTenTB.Text = "";
            txtSoLuong.Text = "";
            txtGiaTien.Text = "";
            txtMoTa.Text = "";
            txtBaoHanh.Text = "";
            cbbNCC.SelectedIndex = 0;
            cbbNhomID.SelectedIndex = 0;
            txtTenTB.Focus();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            #region

            if (txtTenTB.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập tên thiết bị");
                txtTenTB.Focus();
                return;
            }
            if (txtBaoHanh.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin bảo hành");
                txtBaoHanh.Focus();
                return;
            }

            if (txtMoTa.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin mô tả sản phẩm");
                txtMoTa.Focus();
                return;
            }
            if (txtSoLuong.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin số lượng sản phẩm");
                txtSoLuong.Focus();
                return;
            }
            if (txtGiaTien.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin giá sản phẩm");
                txtGiaTien.Focus();
                return;
            }
            #endregion
            if (tb.Them(TaoTB()))
            {
                MessageBox.Show("Thêm thành công thiết bị " + txtTenTB.Text);
                grvThietBi.DataSource = tb.Select_ALL();
                Xoa();
            }
            else
            {
                MessageBox.Show("Chưa thêm được thiết bị " + txtTenTB.Text);
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            #region
            if (txtMaTB.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã thiết bị");
                txtMaTB.Focus();
                return;
            }
            if (txtTenTB.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập tên thiết bị");
                txtTenTB.Focus();
                return;
            }
            if (txtBaoHanh.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin bảo hành");
                txtBaoHanh.Focus();
                return;
            }

            if (txtMoTa.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin mô tả sản phẩm");
                txtMoTa.Focus();
                return;
            }
            if (txtSoLuong.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin số lượng sản phẩm");
                txtSoLuong.Focus();
                return;
            }
            if (txtGiaTien.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải thông tin giá sản phẩm");
                txtGiaTien.Focus();
                return;
            }
            #endregion
            if (tb.Sua(TaoTB()))
            {
                MessageBox.Show("Sửa thành công thiết bị " + txtTenTB.Text);
                grvThietBi.DataSource = tb.Select_ALL();
                Xoa();
            }
            else
            {
                MessageBox.Show("Chưa sửa được thiết bị " + txtTenTB.Text);
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            #region
            if (txtMaTB.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập mã thiết bị");
                txtMaTB.Focus();
                return;
            }
            if (txtTenTB.Text.Trim().Equals(""))
            {
                MessageBox.Show("Bạn phải nhập tên thiết bị");
                txtTenTB.Focus();
                return;
            }
            #endregion
            if (MessageBox.Show("Bạn có chắc chắn xóa Thiết bị mã '" + txtMaTB.Text + "' ?", "Thông báo", MessageBoxButtons.YesNo) == DialogResult.No)
                return;
            if (tb.Kiemtra(txtMaTB.Text))
            {
                if (tb.Xoa(txtMaTB.Text))
                {
                    MessageBox.Show("Xóa thành công thiết bị " + txtTenTB.Text);
                    grvThietBi.DataSource = tb.Select_ALL();
                    Xoa();
                }
                else
                {
                    MessageBox.Show("Chưa xóa được thiết bị " + txtTenTB.Text);
                }
            }
            else { MessageBox.Show("Thiết bị không đúng"); }
        }

        private void btnTimkiem_Click(object sender, EventArgs e)
        {
            if (txtTimKiem.Text == "")
            {
                MessageBox.Show("Bản phải nhập thông tin tìm kiếm vào ô tìm kiếm");
                txtTimKiem.Focus();
                return;
            }
            ThietBiDLL TB = new ThietBiDLL();
            TB.MaTB = txtTimKiem.Text;
            TB.TenTB = txtTimKiem.Text;
            TB.MoTa = txtTimKiem.Text;
            grvThietBi.DataSource = tb.Search(TB);
        }

        private void txtTimKiem_TextChanged(object sender, EventArgs e)
        {
            ThietBiDLL TB = new ThietBiDLL();
            TB.MaTB = txtTimKiem.Text;
            TB.TenTB = txtTimKiem.Text;
            TB.MoTa = txtTimKiem.Text;
            grvThietBi.DataSource = tb.Search(TB);
        }

        private void grvThietBi_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int RowIndex = e.RowIndex;
            if (RowIndex > 0)
            {
                txtMaTB.Text = grvThietBi.Rows[RowIndex].Cells["MaTB"].Value.ToString();
                cbbNCC.Text = grvThietBi.Rows[RowIndex].Cells["TenNCC"].Value.ToString();
                txtTenTB.Text = grvThietBi.Rows[RowIndex].Cells["TenTB"].Value.ToString();
                txtGiaTien.Text = grvThietBi.Rows[RowIndex].Cells["GiaTien"].Value.ToString();
                txtBaoHanh.Text = grvThietBi.Rows[RowIndex].Cells["BaoHanh"].Value.ToString();
                txtSoLuong.Text = grvThietBi.Rows[RowIndex].Cells["SoLuong"].Value.ToString();
                txtMoTa.Text = grvThietBi.Rows[RowIndex].Cells["MoTa"].Value.ToString();
                cbbNhomID.Text = grvThietBi.Rows[RowIndex].Cells["TenNhomID"].Value.ToString();
            }
        }

        private void txtSoLuong_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsDigit(e.KeyChar) == false && e.KeyChar != '\b')
            {
                e.Handled = true;
                MessageBox.Show("Nhập sai định dạng");
            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        
    }
}
